Android客户端与服务器端的json数据交互(很详细) 您所在的位置:网站首页 Android怎么使用Java web端数据 Android客户端与服务器端的json数据交互(很详细)

Android客户端与服务器端的json数据交互(很详细)

2024-06-15 10:20| 来源: 网络整理| 查看: 265

 Android客户端与服务器端的json数据交互,主要是通过json形式的数据交互,就是json的写入和解析。

 先看效果图,我最讨厌讲东西,一个图没有的。

算了,看来我不是写博客的材料,写不下去了,要排版之类的麻烦,大家还是直接去下载源码,里面有大量的注视,应该能看懂。 下载地址:源码下载地址

登录界面:很传统的随便做了一下:

用的是android4.0的,别人说这样的EditText很有科技感。

注册界面:

也是很传统的,文本框之类的 。

下面看看包名,类名图。(忙着和比人聊天了,差点忘了) 现在继续

客户端的:

服务器端的:

下面贴上客户端的代码:

LoginRegisterActivity.java

[java]  view plain copy print ? package com.gem.hsx.activity;      import com.gem.hsx.operation.Operaton;      import android.app.Activity;   import android.app.ProgressDialog;   import android.content.Intent;   import android.os.Bundle;   import android.os.Handler;   import android.os.Message;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Button;   import android.widget.EditText;   import android.widget.Toast;      //此为主activity的实现登录的。在android2.3以后,android规定了主activity不允许在主线程中做一些耗时较多的   //操作,包括网络的操作,主要是减少应用程序停止响应的问题。下面注释掉的部分是网上找到的方法,加上之后就可以在主线程中   //进行联网操作了,但是本人采用了线程的操作,未采用该方法   public class LoginRegisterActivity extends Activity {       Button login;       Button register;       EditText etusername;       EditText etpassword;       String username;       String password;       ProgressDialog p;       @Override       public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);      //      StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()          //      .detectDiskReads()          //      .detectDiskWrites()          //      .detectNetwork()   // or .detectAll() for all detectable problems          //      .penaltyLog()          //      .build());          //      StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()          //      .detectLeakedSqlLiteObjects()       //      .penaltyLog()          //      .penaltyDeath()          //      .build());                       init();           register.setOnClickListener(new RegisterOnclick());           login.setOnClickListener(new LoginOnclick());       }       private void init()        {           etusername=(EditText) findViewById(R.id.etusername);           etpassword=(EditText) findViewById(R.id.etpassword);           login=(Button) findViewById(R.id.login);           register=(Button) findViewById(R.id.register);           p=new ProgressDialog(LoginRegisterActivity.this);           p.setTitle("登录中");           p.setMessage("登录中,马上就好");       }       private class RegisterOnclick implements OnClickListener       {           public void onClick(View v) {               Intent intent=new Intent();               intent.setClass(LoginRegisterActivity.this, Register.class);               startActivity(intent);           }          }       private class LoginOnclick implements OnClickListener       {           public void onClick(View arg0) {               username=etusername.getText().toString().trim();               if (username==null||username.length()       //           str=etusername.getText().toString().trim();       //           if (str==null||str.length()       //                         //                  public void run() {       //                       Operaton operaton=new Operaton();       //                       String result= operaton.checkusername("Check", str);       //                       Message message=new Message();       //                       message.obj=result;       //                       handler.sendMessage(message);       //                  }       //              }).start();       //                      //                    //            }       //      }       //      public void beforeTextChanged(CharSequence s, int start, int count,       //              int after) {       //                 //      }       //       //      public void onTextChanged(CharSequence s, int start, int before,       //              int count) {       //             //      }       //             //  }       //  Handler handler=new Handler()       //  {       //      @Override       //      public void handleMessage(Message msg) {       //          String msgobj=msg.obj.toString();       //          if (msgobj=="该用户名可用")        //          {       //              etusername.setFocusable(false);       //          }       //          else        //          {       //              etusername.requestFocus();       //              etusername.setError(msgobj);       //          }              //          super.handleMessage(msg);       //      }          //  };       //         private class EtusernameOnFocusChange implements OnFocusChangeListener       {           public void onFocusChange(View v, boolean hasFocus) {               if (!etusername.hasFocus()) {                   str=etusername.getText().toString().trim();                   if (str==null||str.length()>(){}.getType();           Gson gson=new Gson();           ArrayList list=gson.fromJson(jsondata, listType);           return list;             }   }     

   WriteJson.java  

   package com.gem.hsx.json;      import java.util.List;   import com.google.gson.Gson;      public class WriteJson {       /*       * 通过引入gson jar包 写入 json 数据       */       public String getJsonData(List list)       {   //此处要注意,时常会出现说找不到Gson类的情况,这时我们只需要将导入的包和系统提供换换顺序就行了           Gson gson=new Gson();//利用google提供的gson将一个list集合写成json形式的字符串           String jsonstring=gson.toJson(list);           return jsonstring;       }       /*       * 当然如果不用gson也可以用传统的方式进行写入json数据或者利用StringBuffer拼字符串 写成json字符串形式       */   }                 

          


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有